package com.tuanzi.loan.business.service.settlementsystem;

import com.tuanzi.loan.business.entity.settlementsystem.SettlementBill;
import com.tuanzi.loan.business.entity.settlementsystem.SettlementBillAnnex;
import com.tuanzi.loan.business.entity.settlementsystem.SettlementCompany;
import com.tuanzi.loan.core.service.BaseAuditService;
import com.tuanzi.loan.core.vo.PageSearcher;
import com.tuanzi.loan.vo.request.settlementsystem.SettlementBillRequest;
import com.tuanzi.loan.vo.response.settlementsystem.SettlementBillResponse;
import com.tuanzi.loan.vo.response.settlementsystem.SettlementIncomeResponse;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

/**
 * @author caiwanlin
 * @create 2018-08-16 20:02
 */
public interface SettlementBillService extends BaseAuditService<SettlementBill,Long> {
    Page<SettlementBillResponse> list(PageSearcher<SettlementBillRequest> pageSearcher);

    /**
     * @param settlementCompany
     * @return
     */
    public SettlementBill structureSettlementBill(SettlementCompany settlementCompany);

    public void onSave(SettlementBill settlementBill, List<Long> selectIncomeId, List<SettlementBillAnnex> billAnnexeList);

    public String validateBill(SettlementBill settlementBill);

    public void changeBillStatus(String businessKey,Map<String, Object> taskVariables);

    public void changeCancelBillStatus(String businessKey,Map<String, Object> taskVariables);


}
